#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time: 2023/1/5 0:46
# @Author: 周阳
# @Email: 100530987@qq.com
# @File：log.py
import time
import logging
import os
from common.consts import BASE_PATH as base_path
from config.config import Config
class Log:
    @classmethod
    def _config(cls):
        c = Config()
        log_dir = os.path.join(base_path, c.get_runtime("log_dir")) # 组装日志路径
        now = time.strftime("%Y-%m-%d", time.localtime(time.time()))#
        log_file = os.path.join(log_dir, now + ".log") # 日志文件以时间+.log命名

        #获取一个标准的logger，配置loglevel
        cls.logger = logging.getLogger()
        cls.logger.setLevel(eval("logging." + c.get_runtime("log_level").upper()))

        #建立不同handler# 定义了两种输出方式，一种输出到文件，一种输出到控制台
        file_handler = logging.FileHandler(log_file, mode="a", encoding='utf-8')
        console_handler = logging.StreamHandler()

        #定义输出格式
        format = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - "
                                   "%(levelname)s: %(message)s")
        file_handler.setFormatter(format)
        console_handler.setFormatter(format)

        #把定制handler添加到我们logger
        cls.logger.addHandler(file_handler)
        cls.logger.addHandler(console_handler)

    @classmethod
    def get_logger(cls):
        cls._config()
        return cls.logger